package newcoder;


import java.util.*;


public class NC94 {
    /**
//     * lfu design
//     * @param operators int整型二维数组 ops
//     * @param k int整型 the k
//     * @return int整型一维数组
     */
    class Node{
        int key;
        int value;
        int count=1;
        int time=0;
        Node(int key,int value,int count,int time){
            this.key=key;
            this.value=value;
            this.count=count;
            this.time=time;
        }
    }
//    public int[] LFU(int[][] operators, int k) {
//        // write code here
//        ArrayList<Integer> res = new ArrayList<>();
//        LinkedList<Node> list = new LinkedList<>();
//
//        PriorityQueue<Node> map = new PriorityQueue<>((o1,o2)->(o1.count==o2.count?o2.time-o1.time:o1.value-o2.time));//key,count
//        for(int i=0;i<operators.length;i++){
//            if(operators[i][0]==1){//set
//                Node node = new Node(operators[i][1],operators[i][2],1);
//                if(map.contains(node)){ //有此key
//                    Node temp = new Node(operators[i][1],operators[i][2],1);
//
//                    map.add(temp);
//                }else{//无此key
//                    if(map.size()==k){
//                        Node e = gspq.poll();
//                        map.remove(e.key);
//                        map.put(operators[i][1],operators[i][2]);
//                        gspq.add(new Node(operators[i][1],1));
//                    }else{
//                        map.put(operators[i][1],operators[i][2]);
//                        gspq.add(new Node(operators[i][1],1));
//                    }
//                }
//
//            }else if(operators[i][0]==2){//get
//                if(map.get(operators[i][1])==null){
//                    res.add(-1);
//                }else{
//                    Map.Entry e = gspq.remove(operators[i][1]);
//                    e.setValue(e.getValue()+1);
//                    gspq.add(e);
//                    res.add(map.get(operators[i][1]));
//                }
//            }
//        }
//        int[] target =new int[res.size()];
//        for(int i =0;i<res.size();i++){
//            target[i]=res.get(i);
//        }
//        return target;
//    }

    public static void main(String[] args) {
        int[][] op = new int[][]{{1,1,1},{1,2,2},{1,3,2},{1,2,4},{1,3,5},{2,2},{1,4,4},{2,1}};
        NC94 nc = new NC94();
//        int[] a = nc.LFU(op,3);
//        System.out.println(a);
    }
}
